package org.rcy.framework.data.util;

public class NamingUtil {
    public NamingUtil() {
    }

    public static String camelToUnderline(String text) {
        if (text != null && !"".equals(text.trim())) {
            StringBuilder result = new StringBuilder(text.length() + 1);
            result.append(text.substring(0, 1));

            for(int i = 1; i < text.length(); ++i) {
                if (!Character.isLowerCase(text.charAt(i))) {
                    result.append('_');
                }

                result.append(text.substring(i, i + 1));
            }

            return result.toString().toLowerCase();
        } else {
            return "";
        }
    }

    public static String underlineToCamel(String text) {
        if (text != null && !"".equals(text.trim())) {
            int length = text.length();
            StringBuilder result = new StringBuilder();

            for(int i = 0; i < length; ++i) {
                char c = text.charAt(i);
                if (c == '_') {
                    ++i;
                    if (i < length) {
                        result.append(Character.toUpperCase(text.charAt(i)));
                    }
                } else {
                    result.append(c);
                }
            }

            return result.toString();
        } else {
            return "";
        }
    }
}
